package com.woniuxy.config;

import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @Author: 马宇航
 * @Description: 统一配置
 * @DateTime: 22/10/21/0021 12:19
 * @Component: 成都蜗牛学苑
 **/
@Configuration
public class ConfirmCallbackConfig {
    @Bean
    public  RabbitTemplate.ConfirmCallback confirmCallback(){
        return new RabbitTemplate.ConfirmCallback() {
            @Override
            public void confirm(CorrelationData correlationData, boolean ack, String cause) {
                //ack就是mq这边，接收到消息后，返回的内容
                if (ack){
                    System.out.println("交换机接收成功");
                    if (correlationData!=null){
                        String id = correlationData.getId();
                        System.out.println(id);
                        System.out.println(correlationData);
                    }
                }else {
                    System.out.println("接收失败"+cause);
                    if("404".contains(cause)){
                        //找不到交换机，需要检查MQ服务和交换机注册服务。
                    }
                    if (correlationData!=null){
                        String id = correlationData.getId();
                        //可以通过这个id，去数据库查出数据，并重新封装发消息出去。
                        System.out.println(id);
                        System.out.println(correlationData);
                    }
                }
            }
        };
    }
}
